#include <iostream>
using namespace std;

/*
	引用：类型别名 是不占用空间大小
		1 同种类型引用的引用只能绑定到相同类型的对象上.
		2 引用必须初始化
		3 引用可以做左值和右值 左值时表示绑定对象的空间  右值时表示绑定对象的值.
		4 const对象只能由const引用绑定
		5 非const对象可以由const和非const引用绑定，但是不能使用const引用
			去修改非const对象.

		6 常量只能由const引用绑定
		7 const引用可以跨类型绑定


*/

int main(void)
{
	int x = 100;
	double pi = 3.14;
	int *p = &x;

	*p = 100;
	//定义一个引用绑定到x上
	int& rx = x;
	int y = rx;
	//int& rp = pi;

	cout << "x: " << x << endl;
	rx = 77;
	cout << "x: " << x << endl;


	int cx = 100;
	int& rcx = cx;
	rcx = 99;
	const int _rcx = cx;
	

	const int& dx = 88;
	
	int value = 10;
	double _dValue = 3.14;
	/*
		const int tmp = _dValue;
		const int& rValue = tmp;
	*/

	const int& rValue = _dValue;
	cout << &rx << "--------->" << &x << endl;
	cout << &_dValue << "--------->" << &rValue << endl;


	return 0;
}
